Media content controller

ABSTRACT

A system and method for controlling media devices are provided. A device controller includes a device control module. The device control module identifies media devices in a local network, such as a LAN. The device control module selects a media device from the identified media devices. Next the device control module selects content to be displayed on the selected media device. The device control module uses the local network to cause the selected media device to display the selected content.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 15/131,568, filed Apr. 18, 2016, now U.S. Pat. No. 10,555,031,which is incorporated herein by reference in its entirety.

BACKGROUND Field

Embodiments are generally directed to a device controller that controlsdisplay of media content, and more specifically, to a device controllerthat controls selection and display of the media content on multiplemedia devices of different makes and models and over a local network.

Background Art

A conventional remote control is designed to control a particular makeand/or model of a media device. For example, a television remote controldesigned to control a television of a particular make and/or model willcontrol the television of only that make and/or model. And, to controlthe media device, the remote control is typically located in the visualvicinity of the media device. This poses a problem in a household,business, etc., that has multiple televisions of different models, as aviewer is required to use multiple remote controls to control themultiple televisions. Further, these multiple remote controls may belost or misplaced and cause viewer frustration at inability to turn onthe media devices on-demand and then select and view the media content.

A universal remote control partially alleviates the above problem. Theuniversal remote control may be pre-programmed to control multiple mediadevices of particular makes and/or models. For instance, if theuniversal remote control is pre-configured with a particular make and/ormodel of a television, the universal remote control may be configured tocontrol that television. But the universal remote control must beconstantly updated with new makes and models of media devices (such astelevisions), as more and more media devices enter the market. And, tocontrol the media devices, the universal remote control may still needto be located within the visual vicinity of the media devices.

Also, by design, conventional remote controls and universal remotecontrols are designed to control media content display on the mediadevices. The conventional remote controls and universal remote controlscannot transfer the display of the media content from the media devicesand display the content on the conventional remote controls or universalremote controls on-demand.

BRIEF SUMMARY OF EMBODIMENTS

A system and method for controlling media devices are provided. A devicecontroller includes a device control module. The device control moduleidentifies media devices in a local network, such as a LAN. The devicecontrol module selects a media device from the identified media devices.Next the device control module selects content to be displayed on theselected media device. The device control module uses the local networkto cause the selected media device to display the selected content.

The device control module also determines a change in location of thedevice controller. During the change, the device control module displaysthe selected content on the device controller.

The device control module also selects a first media device to displaycontent based on the proximity of the first media device to the devicecontroller. When device controller changes location, the device controlmodule selects a second media device to display the content based on theproximity of the device controller to the second media device.

The device control module also initiates playback of the displayedcontent either on the media device and/or on the device controller. Theplayback of the displayed content may switch between the media deviceand the device controller based on the location of the devicecontroller.

Further features and advantages of the embodiments, as well as thestructure and operation of various embodiments, are described in detailbelow with reference to the accompanying drawings. It is noted that theembodiments are not limited to the specific embodiments describedherein. Such embodiments are presented herein for illustrative purposesonly. Additional embodiments will be apparent to persons skilled in therelevant art(s) based on the teachings contained herein.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form partof the specification, illustrate the embodiments and, together with thedescription, further serve to explain the principles of the embodimentsand to enable a person skilled in the pertinent art to make and use theembodiments. Various embodiments are described below with reference tothe drawings, wherein like reference numerals are used to refer to likeelements throughout.

FIG. 1 is a block diagram of a system environment that displays content,according to an embodiment.

FIG. 2 is a block diagram of a system including a device controller,according to an embodiment.

FIG. 3 is a flowchart of a method for using a device controller toselect content for display on a media device, according to anembodiment.

FIG. 4 is a flowchart of a method for using a device controller todisplay content on multiple media devices, according to an embodiment.

FIG. 5 is a flowchart of a method for selecting content for display onmedia devices in a real-world environment, according to an embodiment.

FIG. 6 is a block diagram of a computer system, where the embodimentsmay be implemented.

The embodiments will be described with reference to the accompanyingdrawings. Generally, the drawing in which an element first appears istypically indicated by the leftmost digit(s) in the correspondingreference number.

DETAILED DESCRIPTION OF EMBODIMENTS

Provided herein are system and method embodiments, and/or combinationsand sub-combinations thereof, for a device controller configured tocontrol multiple media devices of different makes and models. Unlikeconventional remote controllers, the embodiments of the devicecontroller described herein, do not require prior configuration orpre-configuration to control different media devices. Instead, thedevice controller controls different makes and/or models of mediadevices without prior configuration.

Additionally, the embodiments of the device controller described herein,control media devices over a wired or wireless network, such as a localarea network. Control of the multiple media devices over a networkallows the device controller to control media devices without beingwithin visual proximity of the media devices, but only being in an areacovered by the local network or another network connected to the localnetwork.

Further, in addition to controlling multiple media devices of multiplemakes and/or models, the embodiments of the device controller describedherein, provide for content that is displayed on media devices to alsobe displayed on the device controller. The display of the media contenton the device controller may occur simultaneously with the display onthe content on the media device, or be transferred from the media deviceto the device controller and then back to the same or different mediadevice.

FIG. 1 is a block diagram of a system environment 100 that displayscontent according to an embodiment. System environment 100 or simplysystem 100 includes one or more media devices, such as media devices102. Media devices 102 provide and display content, such as mediacontent, to a viewer. Example media devices 102 may include, but are notlimited to, television sets, set-top boxes, game consoles, digital mediaplayers that connect to television sets, etc. Further, media devices 102are manufactured by different manufacturers and may be of numerous makesand models. Example media content can include live video content,recorded video content, image content, photographs, on-demand videocontent, digital content, analog content, audio content, etc.

Media devices 102 may receive content from an outside network, such asnetwork 108 (described below) and display the received content. Mediadevices 102 may also be connected together using an internal network,such as network 104. Network 104 may be a wired network that usesEthernet over a twisted pair cable or a wireless network that usesWi-Fi. Network 104 may also be a local area network (LAN). When mediadevices 102 are connected to network 104, media devices 102 maycommunicate with each other and display same or different content, aswill be described below.

In an embodiment, media devices 102 receive content from a contentsource 106. Content source 106 stores and distributes content, includingmedia content. Additionally, content source 106 may provide content tomedia devices according to different methodologies. For example, contentsource 106 may provide on-demand content and viewer selected content tomedia devices 102. In another example, content source 106 may providecontent to media devices 102 according to a customer subscription planthat is associated with a customer. A customer may be a viewer thatviews content on media devices or another user that has a relationshipwith a viewer. The customer subscription plan may determine a type ofsubscription service that the customer subscribes to, the channelsassociated with the subscription account that are available to thecustomer, the available on-demand content, etc.

In an embodiment, content source 106 provides content over network 108.Network 108 may be a wired or wireless network, and includes one or morecombinations of coaxial cable, fiber optic cable, radio frequency (RF)cable, analog cable, digital cable, High-Definition Multimedia Interface(HDMI) cable, etc., that deliver analog and/or digital signals to mediadevices 102. Media devices 102 then translate these analog and/ordigital signals into content. In a further embodiment, to connectcontent source 106 to media devices 102, network 108 may includeintermediate servers, gateways, head-ends, set-top boxes, distributionhubs, network bridges, modems, routers, etc. In a further embodiment,network 108 is a wide area network (WAN) or a metropolitan network.

In an embodiment, network 108 may provide content directly to mediadevices 102 (not shown). Additionally, network 108 may also providecontent to media devices 102 by connecting to network 104 by way ofcable modems, routers, Ethernet cables, Wi-Fi technologies, etc. In thisembodiment, content is transmitted from content source 106 over network108 and to network 104. Network 104 then distributes content to one,some, or all media devices 102 in network 104.

In an embodiment, system 100 includes a device controller 110. Devicecontroller 110 is a computing device that controls, manipulates, etc.,content displayed on media devices 102. In one embodiment, devicecontroller 110 may be a proprietary hardware device specificallydesigned to manipulate content on media devices 102. In anotherembodiment, device controller 110 may be a portable computing device,such as a smartphone, tablet, game console, laptop, etc. In a furtherembodiment, device controller 110 may be a personal computer or adesktop computer.

In yet a further embodiment, and unlike conventional remote controlsthat provide signals to a television, DVD, DVR, set-top-box, etc. of aparticular make and/or model, device controller 110 is not associatedwith any particular make or model of media device 102. Instead, devicecontroller 110 may manipulate multiple media devices 102 at the sametime and regardless of the make, model, type or brand of each mediadevice 102. Additionally, unlike conventional remote control anduniversal remote control devices, device controller 110 may manipulatemedia devices 102 without being configured or pre-configured to controlmedia devices 102. Example configuration or pre-configuration includesproviding make information, model information, manufacturer information,codes, etc., of media devices to conventional remote control devicesbefore or after installation in order to make the remote control devicescontrol and manipulate media devices 102 using a pre-set radio,infrared, or consumer infrared frequency. Instead, device controller 110includes a network interface 112. Network interface 112 connects tonetwork 104. Device controller 110 generates messages to control mediadevices 102 and uses network interface 112 to transmit these messages tomedia devices 102 over network 104.

In a further embodiment, device controller 110 may also play and displaycontent on device controller 110 and also cause one or more mediadevices 102 to play the same or different content. For example, devicecontroller 110 may issue commands to itself to play and display contentor issue commands to media devices 102 that cause media devices 102 toplay and display the same or different media content at the same ordifferent times.

In an embodiment, multiple device controllers 110 may connect to network104 and control media devices 102. In one example, there may be onedevice controller 110 for each viewer who wants to manipulate contentdisplayed on media devices 102. In another example, a viewer may causedevice controller 110 to exclusively control a subset of media devices102.

In a further embodiment, when multiple device controllers 110 controlmedia content on media devices 102, each device controller 110 providesreal-time data regarding which device controller 110 controls whichmedia device 102 in network 104. The data prevents multiple devicecontrollers 110 from controlling the same media device 102. For example,once media device 102A is being controlled by device controller 110A,media device 102A may not be controlled by other device controllers 110until device controller 110A releases control of media device 102A. In afurther embodiment, device controller 110A may also lock one of mediadevices 102 so that a second device controller 110 does not manipulatethe locked media device 102. Locking prevents a scenario where thesecond device controller 110 manipulates media device 102A when mediadevice 102A displays media content initially selected by a differentdevice controller 110.

In a yet further embodiment, one or more of the device controllers 110can be considered master device controllers leaving the other devicecontrollers 110 as slave controllers. Master device controllers have thecapability of issuing commands to media devices 102 that preempt orsupersede commands previously issued to media devices 102 by the slavedevice controllers. For example, a slave device controller can issue acommand to media device 102A to display a particular content. In thisexample, a master device controller can issue its own command to mediadevice 102A to display different content In this example, the commandissued by the master device effectively overwrites the command issued bythe slave device.

In a further embodiment, a group of device controllers 110 can cooperatewith each other to provide distributed command and control of mediadevices 102. The group of device controllers 110 can communicate amongstthemselves to allocate control of media devices 102. Preferably, thiscommunication among the group of device controllers 110 represents adirect communication without involving a server or a moderator.

FIG. 2 is a block diagram 200 of a system including a device controller,according to an embodiment. Block diagram 200 includes one or more mediadevices 102 (referred to as media devices 102A-D) and device controller110 discussed in FIG. 1.

In an embodiment, device controller 110 includes a device control module202. Device control module 202 is an application that may be installed,pre-installed, or downloaded onto device controller 110 via network 104,network 108, a USB cable connected between device controller 110 andanother computing device, a thumb-drive, or a combination of any of theabove, etc.

In an embodiment, device control module 202 causes device controller 110to control one or more media devices 102, such as media devices 102A-Dat the same time or on different occasions. To control media devices102A-D, device control module 202 generates messages to media devices102A-D and passes these messages to network interface 112 in a formatcompatible with network 104. Network interface 112 communicates withrouter 204.

In an embodiment, router 204 may be a wireless or wired router thatconnects and routes messages between multiple devices, such as mediadevices 102A-D, and device controller 110 over network 104. Router 204also distributes content provided over network 108 to media devices102A-D and device controller 110. In an embodiment, router 204 mayinclude one or more network ports that connect router 204 to mediadevices 102A-D via an Ethernet cable, and also an internet or a WAN portthat connects router 204 to network 108 via fiber-optic, coaxial, oranother cable. Also, router 204 may have one or more antennas thatenables router 204 to communicate wirelessly with media devices 102A-Dand device controller 110.

In an embodiment, device control module 202 communicates with router 204(via network interface 112) to determine media devices 102A-D that areconnected to network 104. To identify media devices 102A-D, devicecontrol module 202 may use one or more communication protocols and/orcommunication technologies, including TCP/IP, infrared, radio frequency,Wi-Fi, etc. Based on the identification, device control module 202 mayissue one or more commands to media devices 102A-D. These commandscontrol the display of media content on one or more media devices102A-D.

In an embodiment, device controller 110 includes a graphical userinterface (GUI) 206 or another interface. GUI 206 is included orcommunicatively coupled to device control module 202.

In an embodiment, GUI 206 allows a viewer to select content and controlwhen and where the selected content is displayed on one or more mediadevices 102A-D. Example content may include content associated with acustomer subscription plan, content provided on one or more channels,on-demand content, DVR playback content, etc. Additionally, GUI 206 mayalso provide one or more services to a viewer. For example, GUI 206 mayprovide access to a live help desk that aids with technological issuesassociated with device controller 110 or media devices 102A-D. In afurther embodiment, the help desk may be associated with a provider ofthe customer subscription plan of a viewer.

In an embodiment, GUI 206 provides a selection to a viewer thatdetermines where the viewer wishes to display content. The selection mayinclude one or more media devices 102A-D or device controller 110. OnceGUI 206 receives a selection of one or more media devices 102A-D (suchas media device 102A) on which to display content, GUI 206 communicateswith device control module 202. Device control module 202 then generatesa message to the selected media device 102A and transmits the messageusing network interface 112 over network 104. The message includes theselection of the content to be displayed on media device 102A. Inanother embodiment, if the selection is device controller 110 itself,device controller 110 may display media content on the display screen ofdevice controller 110. In this case, device control module 202 causesdevice controller 110 to display the selected content. In a furtherembodiment, device controller 110 may also display contentsimultaneously on selected media device 102A and device controller 110,or switch the display of content from media device 102A to devicecontroller 110 or vice versa.

In a further embodiment, device controller 110 also includes playbackfunctionality. Playback functionality allows a viewer to replay, pause,playback, fast-forward or rewind content, including streaming or livemedia content (a viewer may only rewind live media content). Theplayback functionality may occur on device controller 110 or mediadevices 102A-D. Additionally, playback functionality may also beavailable when device controller 110 switches display of content betweenmedia devices 102A-D or between device controller 110 and media devices102A-D.

In an embodiment, to activate playback functionality, device controller110 may use device control module 202 and/or GUI 206 which includes theplayback interface, such as rewind and fast-forward selections. Inaddition, GUI 206 may also receive a selection of one or more mediadevices 102A-D on which to display the played back content, such asmedia device 102A. Alternatively, GUI 206 may receive a selection ofwhether to play back content on device controller 110. Once playback ofcontent and the playback device is selected, device control module 202generates a message that causes the playback of the selected mediacontent on the selected device, such as media device 102A or devicecontroller 110.

In a further embodiment, GUI 206 and device control module 202 mayprovide for displaying the playback of content on the media device whichoriginally displayed the content, such as media device 102A, by default.

In yet a further embodiment, GUI 206 and device control module 202 mayprovide for switching the display of played back content betweenmultiple media devices 102A-D and device controller 110. Further, theplayback may occur without losing the frame or position of the playedback content, when the played back content is being switched betweenmultiple media devices 102A-D and/or device controller 110. In thiscase, the position of played back content is maintained before and afterthe switch. For example, if the switch of played back content occursfrom media device 102A to media device 102B at frame 123, media device102B will begin the playback at frame 123. In yet another embodiment,device control module 202 may play back content or switch the playbackof content to one of media devices 102A-D that is proximate or mostproximate to device controller 110. Further, the switch can occur asdevice controller 110 changes location within network 104 to be moreproximate to one of media devices 102A-D.

In an embodiment, device controller 110 may use telemetry to determineproximity of device controller 110 to each of media devices 102A-D. Forexample, router 204 may track location of media devices 102A-D anddevice controller 110 using a telemetry tag. A telemetry tag may beincluded in messages that are transmitted from device control module 202or media devices 102A-D to router 204. The telemetry tag stores locationof one of media devices 102A-D or device controller 110. Router 204 maythen use the telemetry tags provided by device control module 202 and/ormedia devices 102A-D to determine the location of media devices 102A-Dcompared to device controller 110 in network 104, and identify one ofmedia devices 102A-D that is most proximate to device controller 110.

In another embodiment, device control module 202 may include a devicelocator 208. Device locator 208 determines location of device controller110 and also media devices 102A-D in network 104. In an embodiment,router 204 may transmit locations of media devices 102A-D stored intelemetry tag (or otherwise obtained) to device locator 208. Devicelocator 208 then uses the transmitted locations of media devices 102A-Dand the location of device controller 110 to determine proximity ofmedia devices 102A-D to device controller 110, as well as the locationof the most proximate media device 102A, 102B, 102C, or 102D. A personskilled in the art will appreciate that there may be other ways, such asglobal positioning systems (GPS) that device locator 208 may use todetermine proximity of media devices 102A-D to device controller 110.For example, device locator 208 may receive GPS data from media devices102 using network 104 or from router 204. Additionally, device locator208 may retrieve the GPS data for device controller 110. Based on theGPS data, device locator 208 then identifies the proximity of mediadevices 102A-D to device controller 110, and also the most proximatemedia device 102A, 102B, 102C, or 102D to device controller 110.

In an embodiment, device locator 208 may also determine when devicecontroller 110 changes locations. For example, a viewer may pick updevice controller 110 and relocate to another area in network 104. Whendevice locator 208 identifies that device controller 110 is changinglocations, device control module 202 may switch content to be displayedon media device 102A, 102B, 102C, or 102D that is most proximate todevice controller 110. In another embodiment, when device locator 208identifies that device controller 110 is changing locations, devicecontrol module 202 may display content on device controller 110. In thisembodiment, device control module 202 may continue to display content ondevice controller 110 until device controller 110 completes changinglocations and then switch the display of content to one of media device102A, 102B, 102C, or 102D that are proximate to device controller 110.

In a further embodiment, device control module 202 includes a suggestionmodule 210. Suggestion module 210 tracks media devices 102A-D thatdevice controller 110 caused to display content. Based on the tracking,suggestion module 210 suggests one or more of media devices 102A, 102B,102C or 102D to a viewer on which to display content. Suggestion module210 may suggest one or more of media device 102A-D based on the time ofday, previously selected content that has been viewed on one or more ofmedia devices 102A-D, the most often used media device 102A, 102B, 102Cor 102D, etc. Suggestion module 210 may also suggest media devices102A-D based on a location of device controller 110 as determined byusing device locator 208. Additionally, suggestion module 210 maysuggest media device 102A-D based on one of media devices 102A-D thathas most frequently been selected from a particular location of devicecontroller 110.

In an embodiment, GUI 206 may display the suggested media device to aviewer.

In an embodiment, device controller 110 may also identify a viewer andtarget content to the identified viewer. For example, device controlmodule 202 may be associated with a subscription account that includes acustomer subscription plan. To activate device control module 202, theviewer may provide viewer credentials that are associated with thesubscription account. The subscription account may store content thathas previously been viewed by the viewer and provide the same or similarcontent for selection to the viewer.

In another embodiment, device control module 202 may store multipleviewer profiles. The viewer using device control module 202 may then usean existing viewer profile and obtain or select content associated withthe viewer profile. In another embodiment, a viewer may cause devicecontrol module 202 to generate a new viewer profile. Device controlmodule 202 may then recommend content for the new viewer profile. Therecommendation may be based on a questionnaire that device controlmodule 202 provides on GUI 206 to the viewer. Additionally therecommendation may also be supplemented using the previously viewedcontent as the viewer begins and continues to use the new viewerprofile.

FIG. 3 is a flowchart of a method 300 for using a device controller toselect content for display on a media device, according to anembodiment.

At stage 302, media devices in a network are determined. For example,device controller 110 determines media devices 102 that are connected toa local network, such as network 104.

At stage 304, a media device is selected. For example, media device 102Amay be selected based on proximity of media devices 102A-D to devicecontroller 110. For example, device locator 208 alone or in combinationwith router 204 determines proximity of device controller 110 to mediadevices 102A-D. In a further example, device locator 208 determines themost proximate media device 102A, 102B, 102C or 102D and selects themost proximate media device to display content. In another example,media device 102A may be selected based on previous choices of a vieweroperating device controller 110.

At stage 306, content is selected. For example, device controller 110receives a selection of content, such as media content, from a viewervia device control module 202 and/or GUI 206.

At stage 308, a message that causes the selected content to be displayedon the selected media device is generated. For example, content selectedin stage 306 is displayed on media device 102A selected in stage 304. Todisplay the selected content, device controller 110 generates a messagethat indicates a selection of content, and transmits the message tomedia device 102A via network 104. The transmission may be in a networkcompliant communication protocols, such as TCP/IP, radio frequencyprotocols, Wi-Fi, etc. As discussed above, the selected content may bedisplayed on media device 102A without direct communication betweenmedia device 102A and device controller 110. Instead, device controller110 uses network 104 to communicate with media device 102A.

FIG. 4 is a flowchart of a method 400 for using a device controller todisplay content on multiple media devices, according to an embodiment.

At stage 402, content is displayed on a media device. For example,content is displayed on media device 102A from media devices 102A-Dconnected to network 104.

At stage 404, location of a device controller is being changed. Forexample, the viewer using device controller 110 relocates to a differentlocation in a house or another environment that hosts network 104. In anembodiment, the viewer holding device controller 110 may relocate to benear media device 102B.

At stage 406, content is displayed on the device controller. Forexample, as the viewer changes location together with device controller110 in stage 404, device controller 110 switches the display of contentthat is being displayed on media device 102A to device controller 110.The display of content on device controller 110 may continue during theduration of stage 404. Further, the display of content on devicecontroller 110 may occur automatically when the location of devicecontroller 110 is being changed or a viewer may use GUI 206 to selectthe display of content on device controller 110.

At stage 408, a second media device is selected. For example, devicecontroller 110 selects media device 102B that is proximate or mostproximate to the new location of device controller 110. In yet a furtherembodiment, media device 102A may also be selected if media device 102Ais most proximate to the new location of device controller 110.

At stage 410, content is displayed on the media device selected in stage408. For example, device controller 110 causes content displayed ondevice controller 110 during stage 404 to be displayed on the mediadevice 102A or 102B (whichever is selected in stage 408). To cause thecontent to be displayed, device control module 202 causes devicecontroller 110 to issue a message over network 104 to a media deviceselected in stage 408 to display content.

FIG. 5 is a flowchart of a method 500 for selecting content for displayon media devices in a real-world environment, according to anembodiment. In method 500, four media devices 102A-D are connected tonetwork 104 located in a home. Further, device controller 110 isassociated with a subscription account that controls content displayedon media devices 102A-D. In a further embodiment, device controller 110may be a smartphone and is controlled by a subscriber associated withthe subscription account.

At stage 502, media devices are selected. For example, a subscriber usesdevice controller 110 to select media devices 102A-D that are connectedto network 104.

At stage 504, content is selected. For example, subscriber uses devicecontroller 110 to select content. Example content may be a live footballgame.

At stage 506, the content is displayed on a device controller. Forexample, the device controller 110 receives instructions from thesubscriber to display the football game on device controller 110. Oncereceived, device controller 110 displays the football game on devicecontroller 110.

At stage 508, a first media device 102A from media devices 102A-D isselected. For example, the first media device 102A corresponds to one ofthe media devices 102A-D that is more proximate to the device controller110.

At stage 510, the first media device 102A displays the content. Forexample, if device locator 208 determines that device controller 110 ismore proximate to first media device 102A, then the football game isdisplayed on media device 102A.

At stage 512, second media device 102B from media devices displayscontent. For example, device controller 110 receives instructions fromthe subscriber via GUI 206 to display the football game on second mediadevice 102B. Here, device control module 202 issues a message overnetwork 104 to media device 102B to display the football game. Afterstage 512, both media devices 102A and 102B display the same content—thefootball game.

At stage 514, content is displayed on the device controller and on themedia devices selected in stages 510 and 512. For example, devicecontroller 110 receives instructions from the subscriber via GUI 206 todisplay the football game on device controller 110 and on media devices102A and 102B. Such a scenario may occur when guests arrive at thesubscriber's house and a subscriber wishes to continue to displaycontent on media devices 102A and 102B, and also on device controller110 as the subscriber goes to open the door.

At stage 516, different content is selected for display on a third mediadevice 102C from media devices 102A-D. For example, device controller110 receives instructions from GUI 206 to display cartoons on mediadevice 102C. Once received, device controller 110 issues messages tothird media device 102C to display cartoons. As discussed above, devicecontroller 110 issues a message over network 104 to media device 102C todisplay the cartoon content.

At stage 518, playback is initiated on a media device selected in stage510. For example, device controller 110 receives instructions from thesubscriber to play back a portion of the football game that thesubscriber wanted to re-play. As playback is initiated, device locator208 initiates a playback command to media device 102A over network 104by default. Alternatively, the subscriber may also select media device102A or 102B to display playback of the portion of the football game.

At stage 520, playback is initiated on a media device selected in stage512. For example, the subscriber, along with device controller 110, hasmoved to a location in the house. Device locator 208 detects themovement of device controller 110 and initiates a playback command tomedia device 102B. For example, device locator 208 detects that devicecontroller 110 is now more proximate to media device 102B and initiatesa playback command to media device 102B.

At stage 522, a third media device is turned off. For example, devicecontroller 110 receives instructions to turn off media device 102C. Oncereceived, device controller 110 generates a message to turn off mediadevice 102C, and transmits the message to media device 102C over network104. As media device 102C is turned off, media devices 102A and 102Bcontinue to display the football game.

Various embodiments of device controller 110 and other devices describedin FIGS. 1-5 may be implemented by software, firmware, hardware, or acombination thereof. FIG. 6 illustrates an example computer system 600in which the embodiments, or portions thereof, can be implemented ascomputer-readable code. For example, the methods illustrated by eventdiagrams described herein can be implemented in system 600. Variousembodiments are described in terms of this example computer system 600.After reading this description, it will become apparent to a personskilled in the relevant art how to implement the embodiments using othercomputer systems and/or computer architectures.

Computer system 600 includes one or more processors, such as processor606. Processor 606 can be a special purpose or a general purposeprocessor. Processor 606 is connected to a communication infrastructure604 (for example, a bus or network).

Computer system 600 also includes one or more graphics processing units,such as graphics processing unit (“GPU”) 607. GPU 607 is also connectedto a communication infrastructure 604. GPU 607 is a specializedprocessor that executes instructions and programs, selected for complexgraphics and mathematical operations, in parallel. For example, GPU 607may be adept at displaying and processing streaming media content.

Computer system 600 also includes a main memory 608, such as randomaccess memory (RAM) or another volatile memory that stores data whilethe computer system is turned on, and may also include a secondarymemory 610. Secondary memory 610 may include, for example, a hard diskdrive 612 and/or a removable storage drive 614 or another non-volatilestorage that maintains data regardless whether computer system 600 isturned on or off. Removable storage drive 614 may comprise a floppy diskdrive, a magnetic tape drive, an optical disk drive, a flash memory, orthe like. The removable storage drive 614 reads from and/or writes to aremovable storage unit 616 in a well-known manner. Removable storageunit 616 may comprise a floppy disk, magnetic tape, optical disk, etc.which is read by and written to by removable storage drive 614. As willbe appreciated by persons skilled in the relevant art(s), removablestorage unit 616 includes a tangible computer readable storage medium624A having stored therein control logic 628B such as computer softwareand/or data.

In alternative implementations, secondary memory 610 may include othersimilar means for allowing computer programs or other instructions to beloaded into computer system 600. Such means may include, for example, aremovable storage unit 616 and an interface 618. Examples of such meansmay include a program cartridge and cartridge interface (such as thatfound in video game devices), a removable memory chip (such as an EPROM,or PROM) and associated socket, and other removable storage units 616and interfaces 618 which allow software and data to be transferred fromthe removable storage unit 616 to computer system 600. As will beappreciated by persons skilled in the relevant art(s), interface 618also includes a tangible computer readable storage medium 624B havingstored therein control logic 628C such as computer software and/or data.

Computer system 600 may also include a communications interface 620.Communications interface 620 allows software and data to be transferredbetween computer system 600 and external devices 622. Communicationsinterface 620 may include a modem, a network interface (e.g., anEthernet card), a communications port, a PCMCIA slot and card, or thelike. Software and data transferred via communications interface 620 arein the form of signals which may be electronic, electromagnetic,optical, or other signals capable of being received by communicationinterface 620. Software and data transferred via communicationsinterface 620 are provided to communications interface 620 via acommunications path. Communications path may be implemented using wireor cable, fiber optics, a phone line, a cellular phone link, a radiofrequency (RF) link or other communications channels.

The communication and network interface 620 allows the computer system600 to communicate over communication networks or mediums such as LANs,WANs the Internet, etc. The communication and network interface 620 mayinterface with remote sites or networks via wired or wirelessconnections.

In this document, the terms “computer program medium” and “computerusable medium” and “computer readable medium” are used to generallyrefer to media such as removable storage unit 616 and a hard disk 612installed in hard disk drive 612. Computer program medium, computerusable medium, or computer readable medium can also refer to memories,such as main memory 608 and secondary memory 610, which can be memorysemiconductors (e.g. DRAMs, etc.). These computer program products aremeans for providing software to computer system 600.

Computer programs (also called computer control logic 628) are stored inmain memory 608, such as control logic 628A and/or secondary memory 610,such as control logic 628B. Computer programs may also be received viainterface 618, such as control logic 628C. Such computer programs, whenexecuted, enable computer system 600 to implement embodiments asdiscussed herein, such as the system described above. In particular, thecomputer programs, when executed, enable processor 606 to implement theprocesses of embodiments. Accordingly, such computer programs representcontrollers of the computer system 600. Where embodiments areimplemented using software, the software may be stored in a computerprogram product and loaded into computer system 600 using removablestorage drive 614, interface 618, hard drive 612 or communicationsinterface 620.

Embodiments can be accomplished, for example, through the use ofgeneral-programming languages (such as C or C++), hardware-descriptionlanguages (HDL) including Verilog HDL, VHDL, Altera HDL (AHDL) and soon, or other available programming and/or schematic-capture tools (suchas circuit-capture tools). The program code can be disposed in any knowncomputer-readable medium including semiconductor, magnetic disk, oroptical disk (such as CD-ROM, DVD-ROM). As such, the code can betransmitted over communication networks including the Internet andinternets. It is understood that the functions accomplished and/orstructure provided by the systems and techniques described above can berepresented in a core (such as a CPU core and/or a GPU core) that isembodied in program code and may be transformed to hardware as part ofthe production of integrated circuits.

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections may set forth one or morebut not all exemplary embodiments as contemplated by the inventor(s),and thus, are not intended to limit the embodiments and the appendedclaims in any way.

In the detailed description above, references to “one embodiment,” “anembodiment,” “an example embodiment,” etc., indicate that the embodimentdescribed may include a particular feature, structure, orcharacteristic, but every embodiment may not necessarily include theparticular feature, structure, or characteristic. Moreover, such phrasesare not necessarily referring to the same embodiment. Further, when aparticular feature, structure, or characteristic is described inconnection with an embodiment, it is submitted that it is within theknowledge of one skilled in the art to affect such feature, structure,or characteristic in connection with other embodiments whether or notexplicitly described.

The term “embodiments” does not require that all embodiments include thediscussed feature, advantage or mode of operation. Alternate embodimentsmay be devised without departing from the scope of the disclosure, andwell-known elements of the disclosure may not be described in detail ormay be omitted so as not to obscure the relevant details. In addition,the terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.For example, as used herein, the singular forms “a,” “an” and “the” areintended to include the plural forms as well, unless the context clearlyindicates otherwise. It will be further understood that the terms“comprises,” “comprising,” “includes” and/or “including,” when usedherein, specify the presence of stated features, integers, steps,operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

The embodiments have been described above with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the embodiments that others can, byapplying knowledge within the skill of the art, readily modify and/oradapt for various applications such specific embodiments, without undueexperimentation, without departing from the general concept of thedisclosure. Therefore, such adaptations and modifications are intendedto be within the meaning and range of equivalents of the disclosedembodiments, based on the teaching and guidance presented herein. It isto be understood that the phraseology or terminology herein is for thepurpose of description and not of limitation, such that the terminologyor phraseology of the present specification is to be interpreted by theskilled artisan in light of the teachings and guidance.

The breadth and scope of the embodiments should not be limited by any ofthe above-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

What is claimed is:
 1. A system for controlling operation of a pluralityof media devices coupled to a network, the system comprising: aplurality of device controllers coupled to the network, a first devicecontroller from among the plurality of device controllers being a masterdevice controller and a second device controller from among theplurality of device controllers being a slave device controller, theplurality of device controllers being configured to store a plurality ofviewer profiles that are associated with a plurality of viewers, whereinthe slave device controller is configured to: select a first viewerprofile from among the plurality of viewer profiles that is associatedwith a first viewer from among the plurality of viewers that isoperating the slave device controller, obtain first content that isassociated with the first viewer profile, and issue a first command to amedia device from among the plurality of media devices over the networkto cause the media device to display the first content, and wherein themaster device controller is configured to: select a second viewerprofile from among the plurality of viewer profiles that is associatedwith a second viewer from among the plurality of viewers that isoperating the master device controller, obtain second content that isassociated with the second viewer profile, and issue a second command tothe media device over the network to overwrite the first command issuedby the slave device to cause the media device to display the secondcontent.
 2. The system of claim 1, wherein the slave device controlleris configured to issue the first command to cause the media device todisplay the first content without prior configuration of the slavedevice controller to control the media device, and wherein the masterdevice controller is configured to issue the second command to cause themedia device to display the second content without prior configurationof the master device controller to control the media device.
 3. Thesystem of claim 2, wherein the slave device controller and the masterdevice controller are configured to cause the media device to displaythe first content and the second content, respectively, regardless ofmake, model, type or brand of the media device.
 4. The system of claim2, wherein the slave device controller and the master device controllerare configured to cause the media device to display the first contentand the second content, respectively, without being provided makeinformation, model information, manufacturer information, or amanufacturer code of the media device.
 5. The system of claim 1, whereinthe media device is configured to receive the first content and thesecond content over the network from a content source.
 6. The system ofclaim 1, wherein the slave device controller and the master devicecontroller are portable computing devices.
 7. The system of claim 1,wherein the slave device controller is further configured to select themedia device that is most proximate to the slave device controller fromamong the plurality of media devices as compared to other media devicesfrom among the plurality of media devices.
 8. A method for controllingoperation of a plurality of media devices coupled to a network,comprising: storing a plurality of viewer profiles that are associatedwith a plurality of viewers in a plurality of device controllers,communicating amongst the plurality of device controllers to determine amaster device controller and a slave device controller from among theplurality of device controllers; selecting, by the slave devicecontroller, a first viewer profile from among the plurality of viewerprofiles that is associated with a first viewer from among the pluralityof viewers that is operating the slave device controller; obtaining, bythe slave device controller, first content that is associated with thefirst viewer profile; issuing, by the slave device controller, a firstcommand to a media device from among the plurality of media devices overthe network to cause the media device to display the first content;selecting, by the master device controller, a second viewer profile fromamong the plurality of viewer profiles that is associated with a secondviewer from among the plurality of viewers that is operating the masterdevice controller; obtaining, by the master device controller, secondcontent that is associated with the second viewer profile; and issuing,by the master device controller, a second command to the media deviceover the network to overwrite the first command issued by the slavedevice to cause the media device to display the second content.
 9. Themethod of claim 8, wherein the issuing the first command comprises:issuing the first command to cause the media device to display the firstcontent without prior configuration of the slave device controller tocontrol the media device, and wherein the issuing the second commandcomprises: issuing the second command to cause the media device todisplay the second content without prior configuration of the masterdevice controller to control the media device.
 10. The method of claim9, wherein the issuing the first command further comprises: issuing thefirst command regardless of make, model, type or brand of the mediadevice, and wherein the issuing the second command further comprises:issuing the second command regardless of the make, the model, the typeor the brand of the media device.
 11. The method of claim 9, wherein theissuing the first command further comprises: issuing the first commandwithout being provided make information, model information, manufacturerinformation, or a manufacturer code of the media device, and wherein theissuing the second command further comprises: issuing the second commandwithout being provided the make information, the model information, themanufacturer information, or the manufacturer code of the media device.12. The method of claim 8, further comprising: receiving, by the mediadevice, the first content and the second content over the network from acontent source.
 13. The method of claim 8, further comprising:selecting, by the slave device controller, the media device that is mostproximate to the slave device controller from among the plurality ofmedia devices as compared to other media devices from among theplurality of media devices.
 14. A master device controller from among aplurality of device controllers for controlling operation of a pluralityof media devices coupled to a network, the master device controllercomprising: a memory that stores a plurality of viewer profiles that areassociated with a plurality of viewers; a processor configured toexecute instructions, the instructions, when executed by the processor,configuring the processor to: select a first viewer profile from amongthe plurality of viewer profiles that is associated with a first viewerfrom among the plurality of viewers that is operating the slave devicecontroller, obtain first content that is associated with the firstviewer profile, select a media device from among a plurality of mediadevices to display the first content, the media device displaying secondcontent in response to a first command issued by a slave devicecontroller from among the plurality of device controllers, and issue asecond command to the media device over the network to overwrite thefirst command issued by the slave device to cause the media device todisplay the first content.
 15. The master device controller of claim 14,wherein the instructions, when executed by the processor, configure theprocessor to issue the second command to cause the media device todisplay the first content without prior configuration of the masterdevice controller to control the media device.
 16. The master devicecontroller of claim 15, wherein the instructions, when executed by theprocessor, configure the processor to issue the second command to causethe media device to display the first content regardless of make, model,type or brand of the media device.
 17. The master device controller ofclaim 15, wherein the instructions, when executed by the processor,configure the processor to issue the second command to cause the mediadevice to display the first content without being provided makeinformation, model information, manufacturer information, or amanufacturer code of the media device.
 18. The master device controllerof claim 14, wherein the master device controller comprises a portablecomputing device.
 19. The master device controller of claim 14, whereinthe instructions, when executed by the processor, configure theprocessor to select the media device that is most proximate to themaster device controller from among the plurality of media devices ascompared to other media devices from among the plurality of mediadevices.
 20. The master device controller of claim 14, furthercomprising: a display device, and wherein the instructions, whenexecuted by the processor, further configure the processor to switchdisplay of the first content from the media device to the display devicein response to a change in a location of the master device controller.21. The master device controller of claim 20, wherein the change in thelocation comprises a different location within the network.
 22. Themaster device controller of claim 21, wherein the different locationwithin the network is more proximate to a second media device from amongthe plurality of media devices as compared to the media device.
 23. Themaster device controller of claim 20, wherein the instructions, whenexecuted by the processor, further configure the processor to: determinea position of the first content being displayed by the media device, andcause the display device to display the first content beginning at theposition of the first content.
 24. The master device controller of claim22, wherein the instructions, when executed by the processor, configurethe processor to issue the second command that preempts the firstcommand to cause the second media device to display the second content.